//
// Created by Zain on 2016/9/9.
//

#ifndef ZAINTL_OUTPUTSTREAM_H
#define ZAINTL_OUTPUTSTREAM_H

#include "ShareHeaders.h"

namespace ZainTL {
    class OutputStream {
    protected:
        std::ostream *mOStream = NULL;

    public:
        OutputStream(const char *path);

        virtual ~OutputStream();

        virtual void write(const char *buffer, std::streamsize bufferSize)=0;

        virtual void writeChar(char v)=0;

        virtual void writeShort(uint16_t v)=0;

        virtual void writeString(std::string v)=0;

        virtual void writeLong(uint64_t v)=0;
    };
}


#endif //ZAINTL_OUTPUTSTREAM_H
